#!/bin/bash
# 恢复 homeassistant 和 qinglong 数据

# 提取 docker-compose 的工作目录
working_dir=$(docker inspect qinglong --format '{{ index .Config.Labels "com.docker.compose.project.working_dir" }}')

# 检查工作目录是否成功提取
if [ -z "$working_dir" ]; then
    echo "错误：无法获取工作目录"
    exit 1
fi

# 切换到工作目录
cd "$working_dir" || { echo "错误：无法切换到工作目录 $working_dir"; exit 1; }

# 恢复 homeassistant
if [ -d "homeassistant" ]; then
    tar -xf core_2024_12_1.tar -C homeassistant/ --overwrite
    tar -zxvf homeassistant.tar.gz -C homeassistant/ --overwrite
    chown -R 1000:1000 homeassistant/data
else
    echo "警告：homeassistant 目录不存在，跳过恢复"
fi

# 恢复 qinglong
if [ -d "qinglong" ]; then
    # 解压 data.tgz 到临时目录
    temp_dir=$(mktemp -d)
    tar -xzvf data.tgz -C "$temp_dir"
    
    # 检查 data 文件夹是否存在
    if [ -d "$temp_dir/data" ]; then
        rsync -a "$temp_dir/data/" qinglong/
    else
        echo "错误：解压后未找到 data 文件夹"
        rm -rf "$temp_dir"
        exit 1
    fi
    
    # 清理临时目录
    rm -rf "$temp_dir"
else
    echo "警告：qinglong 目录不存在，跳过恢复"
fi

# 恢复 localserver
if [ -d "localserver" ]; then
    tar -zxvf localserver.tgz -C localserver/ --overwrite
else
    echo "localserver 目录不存在，跳过恢复"
fi

# 重启容器
docker-compose restart qinglong || echo "警告：无法重启 qinglong"
docker-compose restart homeassistant || echo "警告：无法重启 homeassistant"
